Returning specific fields with elementCriteriaModel
Not 100% certain, but I suspect that with a standard ElementCriteriaModel it's all or nothing, as craft generally returns the full userModel including all custom fields. If you're worried about memory limitations, then you might want to either process the users in batches and/or create your own custom query. Something like this perhaps:

// define query
$criteria = craft()-&gt;elements-&gt;getCriteria(ElementType::User);

$query = craft()-&gt;elements-&gt;buildElementsQuery($criteria);
$query-&gt;select(array('elements.id AS id', 'field_extid AS extid', 'field_lastupdatetime AS lastupdatetime'));
$query-&gt;limit(null);
$results = $query-&gt;queryAll();

foreach($results as $result)
{
    // compare craft values to json

    // var_dump($result['extid']) // uncomment to test
    // var_dump($result['lastupdatetime']) // uncomment to test
    // set $userExists equal to true or false if needed

    // create/retrieve user
    if ($userExists) {
        $user = craft()-&gt;users-&gt;getUserById($result['id']);
    } else {
        $user = new UserModel();
    }

    // update, save, etc
    // ...
}


You can also use var_dump($results) to test whether you are getting the expected results.